Web applications are typically developed using one or more programming languages, such as HTML, DHTML, XML, Java, JavaScript, and PHP. Web applications are executable through an application capable of displaying a website, such as a web browser, when a website visitor launches a website comprising the web applications. Web applications have become increasingly useful in enhancing user experiences to a website. Oftentimes, however, web applications can inadvertently create opportunities for malicious parties, viruses, worms, and the like, to introduce problems, security risks, and other vulnerable aspects (hereinafter collectively “vulnerabilities”) to the proper operation and integrity of the website and/or its underlying servers, networks, etc.
To promote the broadest availability across multiple operating systems and browser platforms, web applications are typically designed to be executable in substantially the same manner regardless of a user's specific computing capabilities. As an example, a typical web application will be coded to enable execution on more than one type of web browser, such as the various different versions of Internet Explorer, Firefox, Safari, Netscape, Opera, etc., and using more than one type of computing device, such as a desktop computer, a laptop computer, a tablet, a smart phone, and the like.
A typical website will comprise a plurality of web applications ranging from simple web applications, such as basic JavaScript codes for performing textual or graphical renditions in response to user-initiated actions, to more complex and dynamic web applications, such as Web 2.0 Applications (or rich internet applications). Such web applications may communicate with one or more back-end database servers to search, retrieve, store, delete, and/or modify specific information after being triggered by one or more user-initiated actions. Such web applications can also communicate to and from one or more other types of servers, including third-party e-commerce servers or messaging servers.
Web applications are generally designed to be “dormant,” or inactive, until a user performs one or more actions to the website, such as a mouse click and/or character input(s), that triggers one or more web applications to respond. Oftentimes, user-initiated actions can cause vulnerabilities, such as problems to the proper operation of the website and/or other vulnerabilities that can directly or indirectly affect the integrity of the user's computer, database servers, web servers, other back-end servers, other network elements, network communication channels, etc. In this regard, prudent website developers will perform reviewing and testing of their website and associated web applications (if possible) before going “live,” that is, before the website is made available on the internet, intranet, or other computing networks. A cooperative cross-disciplinary effort of personnel, including developers, network/IT managers, website/security administrators, and/or compliance officers can also be established to plan, develop, and implement, among other things, web application security programs aimed at identifying and testing vulnerabilities of web applications within their live websites.
Web application scanners have recently been introduced as a tool used to identify vulnerabilities of web applications in a website. In general, a web application scanner will attempt to search, identify, and test (hereinafter collectively “scan” or “scanning”) web applications by launching the website and actually interacting with web applications in a plurality of default ways, as pre-determined by the web application scanner. As a simple example, a web application scanner can perform a scan of an online search and/or submission form by submitting a plurality of predetermined permutations of different character inputs in hopes of triggering and identifying vulnerabilities. In such conventional approaches, web application scanners will typically take a predetermined “guessing” or trial-and-error approach to identifying web application problems and vulnerabilities. However, because a typical website might comprise hundreds or thousands of web applications, including complex and/or sequence-specific rich internet applications, it is recognized herein that such a “guessing” or trial-and-error approach to scanning websites can be very time and resource consuming, and ineffective.
Recent advances in web application scanners have attempted to address these problems by enabling the web application scanner user (“tester” or “security personnel”) to manually select certain aspects/parts of their website to scan. In taking such a manual approach, web application scanners can be selectively applied to scan certain aspects/parts of the website using the same “guessing” or trial-and-error approach as described above. Security personnel are then enabled to divide the scanning of the website into separate scans, and are also enabled to perform targeted scanning so as to confirm tester-identified problems previously encountered in certain web applications and/or scanning of only new web applications.
Despite recent advances in web application scanners, including those described above, it is recognized herein that conventional web application scanners continue to be, among other things, ineffective, inefficient, and oftentimes even problematic in scanning websites, particularly those comprising complex, asynchronous, and/or sequence-specific web applications.